package a_02_wizhi.M_mysql;

/**
 * @author fanhb on 2017/8/25
 * @desc zk原理
 */
public class Mysql_三范式 {


    /**
     * mysql: 三范式
     * website: http://www.cnblogs.com/knowledgesea/p/3667395.html
     * 百度百科: https://baike.baidu.com/item/数据库范式/7309898?fr=aladdin
     *
     *    1NF:  1、每一列属性都是不可再分的属性值，确保每一列的原子性    2、两列的属性相近或相似或一样，尽量合并属性一样的列，确保不产生冗余数据。
     *    2NF:  每一行的数据只能与其中一列相关，即一行数据只做一件事。只要数据列中出现数据重复，就要把表拆分开来。
     *    3NF:  数据不能存在传递关系，即没个属性都跟主键有直接关系而不是间接关系。像：a-->b-->c  属性之间含有这样的关系，是不符合第三范式的。
     *    总结: 三大范式只是一般设计数据库的基本理念，可以建立冗余较小、结构合理的数据库。如果有特殊情况，当然要特殊对待，数据库设计最重要的是看需求跟性能，需求>性能>表结构。所以不能一味的去追求范式建立数据库。
     *
     *
     * 1NF）是指在关系模型中，对域添加的一个规范要求，所有的域都应该是原子性的，即数据库表的每一列都是不可分割的原子数据项，
     * 2NF）要求实体的属性完全依赖于主关键字。所谓完全依赖是指不能存在仅依赖主关键字一部分的属性，
     *
     *
     */


}





